Github Actions实现Hexo自动化部署

您所在的位置:网站首页 hexo admin自动化部署unknown Github Actions实现Hexo自动化部署

Github Actions实现Hexo自动化部署

2023-07-14 18:38| 来源: 网络整理| 查看: 265

本文介绍了如何使用GitHub Actions实现Hexo自动化部署,并指出了一些现有YAML代码所引用的脚本比较老导致报错的问题。

Hexo是一个快速、简单且强大的静态博客框架,而GitHub Actions则是一项功能强大的CI/CD工具,可以自动化地执行软件开发工作流程,用于自动构建、测试和部署代码,从而加快软件开发周期。

GitHub Actions使用YAML脚本语言,一种轻量级的标记语言,语法简单,相比JSON更加简介,可以轻松地编写和维护自动化工作流程。

1. SSH秘钥

我的Hexo分2个Git仓库,源码为私库 21ido.com,发布到 GitHub Pages为公开库 think2cat.github.io

因为是从源码私库push到Pages公开库,此时需要在公开库设置公钥

1.1 生成秘钥

执行下面代码,其中邮箱替换成自己的

ssh-keygen -t rsa -b 4096 -C "[email protected]" -f hexo -N ""

生成2个文件,hexo 和 hexo.pub

1.2 设置公钥

用记事本打开 hexo.pub,全选复制后到GitHub Pages库

Settings > Deploy keys > Add deploy key

Deploy key

把刚刚复制的粘贴进去,Title可以随便起,有多个公钥时可以区分,只有一个的话就无所谓了

然后记得把下面的 Allow write access勾上

Add deploy key

1.3 设置私钥

接着记事本打开hexo,全选复制,私钥会长很多,到源码库

Settings > Secrets > Actions > New repository secret

Actions

Name相当于变量名,可以自己起个名字,但要跟后面的yaml文件对应,系统默认大写,就算输入小写也会自动变成大写

New repository secret

确定后这步就完成了,等于从源码库push到页面库时,公钥和私钥作为检验权限使用,而把私钥加在这里,是为了避免在源码写秘钥容易泄露,而且Actions的日志遇到 Secret 里的变量时,会自动处理成 ***,而不是明文,也能避免私钥泄露

2. 创建工作流

因为写hexo是push到源码库,然后由源码库编译生成pages,再把生成的页面push到Pages库,所以工作流是建在源码库

点击 Actions > New workflow

New workflow

也可以直接在Git库根目录新建 .github \ workflows 目录,然后在 workflows 目录再新建 yml 文件,文件名随意,新建的工作流都会在Actions下显示

工作流分为几步骤

checkout code 配置node环境 安装依赖包 安装hexo hexo生成页面 发布到GitHub Pages

完整的YML脚本如下

name: Deployon: [push]jobs: build: runs-on: ubuntu-latest name: Deploy blog steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '16' cache: 'npm' - name: Install Dependencies run: npm ci - name: install hexo... run: | npm install hexo-cli -g - name: hexo generate public files... run: | hexo clean hexo g - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} external_repository: think2cat/think2cat.github.io publish_branch: master publish_dir: ./public 3. 报错解决

Please update the following actions to use Node.js 16

最开始用的是网上找的脚本 actions/checkout@v1 和 actions/setup-node@v2 版本为12,于是改为 actions/checkout@v3 和 actions/setup-node@v3,并配上 16 版本属性

Error: pngquant failed to build, make sure that libpng-dev is installed

使用部署脚本为 sma11black/[email protected] 错误原因未知,可能是node版本兼容问题,改为全局安装 hexo + build

Please make sure you have the correct access rights and the repository exists. Error: Action failed with “The process ‘/usr/bin/git’ failed with exit code 128”

Git库权限问题,确保SSH公钥和私钥是一对,且对应的库没搞错

脚本依赖包没有考虑做缓存,可以自己试试用 actions/cache

4. 附录:

阮一峰YAML教程 www.ruanyifeng.com/blog/2016/0…

Github Actions docs.github.com/zh/actions/…

actions-gh-pages github.com/peaceiris/a…



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3